package com.huike.springboot1.demos.controller;

import com.huike.springboot1.demos.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.servlet.ModelAndView;

//前台操作：
@Controller
public class ProductController {
/*    1：准备数据库，表，数据
      2：根据表结构创建实体类，实体类是前后端和java和数据库关联的桥梁
      3：完成持久层的开发并测试，即数据访问层，即创建实体类对应的Mapper类(要有注解)的接口和对应的xml配置文件(Mapper怎么和配置文件绑定)
      4：完成服务层的开发(可省略测试)，设置业务数据的开发与处理，业务逻辑代码编写，调用持久层的方法，但必须存在
      5：完成控制层的开发与测试，注意怎么将数据进行传递，作用:将模型传递到视图
      6：完成视图层的开发，利用thymeleaf和ui工具完成开发                                                                                                                                                                                                                                                                                                    
*/

    @Autowired
    ProductService productService;
    //网路路径(项目路径)
    @GetMapping("/productList")
//    控制层通过访问项目路径，可以将数据库中的数据以products为参数名传递到productList页面
//    Model：是SpringMVC中的"M“：模型(数据),前后端交互时的数据模型,后端向前端传递数据使用model    "V"：视图(页面)
    public String getProductList(Model model) {
        //TODO
//        model将数据作为products参数传递productList(视图)，括号内的内容是，参数名,参数值
        model.addAttribute("products", productService.getProductList());
        return "productList";//返回一个在templates路径下的页面名称，productList是templates里的文件
        // 传递到页面的数据product可以通过美元符号$进行获取，在全局配置文件中设置页面文件路径
    }
}
